Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@polymer/prism-element

Package Overview
Dependencies
Maintainers
11
Versions
32
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@polymer/prism-element

Prism.js import and syntax highlighting

  • 3.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
11
Created
Source

Published on NPM Build status Published on webcomponents.org

<prism-highlighter>

Syntax highlighting via Prism.

Place a <prism-highlighter> in your document, preferably as a direct child of <body>. It will listen for syntax-highlight events on its parent element, and annotate the code being provided via that event.

The syntax-highlight event's detail is expected to have a code property containing the source to highlight. The event detail can optionally contain a lang property, containing a string like "html", "js", etc.

This flow is supported by <marked-element>.

See: Documentation, Demo.

Usage

Installation

npm install --save @polymer/prism-element

In an html file

<html>
  <body>
    <div id="parent">
      <prism-highlighter></prism-highlighter>
      <div id="output"></div>
    </div>
  </body>
  <script type="module">
      import '@polymer/prism-element/prism-highlighter.js';
      import '@polymer/prism-element/prism-theme-default.js';
      import '@polymer/polymer/lib/elements/custom-style.js';
      import {html} from '@polymer/polymer/lib/utils/html-tag.js';

      // import prism theme styles
      const template = html`
        <custom-style>
          <style include="prism-theme-default"></style>
        </custom-style>
      `;

      document.head.appendChild(template.contents);

      const parent = document.getElementById('parent');
      const output = document.getElementById('output');
      const ev = new CustomEvent('syntax-highlight');

      // enter code and language here
      ev.detail = {
        code: 'p { background-color: blue }',
        lang: 'css',
      };
      parent.dispatchEvent(ev);

      // detail is modified by prism-highlighter
      output.innerHTML = ev.detail.code;
    </script>
</html>

In a Polymer 3 element

import {PolymerElement, html} from '@polymer/polymer';
import '@polymer/prism-element/prism-element.js';
import '@polymer/prism-element/prism-highlighter.js';
import '@polymer/prism-element/prism-theme-default.js';

class SampleElement extends PolymerElement {
  static get template() {
    return html`
      <style include="prism-theme-default"></style>
      <div id="parent">
        <prism-highlighter></prism-highlighter>
        <div id="output"></div>
      </div>
    `;
  }

  connectedCallback() {
    super.connectedCallback();
    const ev = new CustomEvent('syntax-highlight');

    // enter code and language here
    ev.detail = {
      code: 'p { background-color: blue }',
      lang: 'css',
    };
    this.$.parent.dispatchEvent(ev);

    // detail is modified by prism-highlighter
    this.$.output.innerHTML = ev.detail.code;
  }
}
customElements.define('sample-element', SampleElement);

Contributing

If you want to send a PR to this element, here are the instructions for running the tests and demo locally:

Installation

git clone https://github.com/PolymerElements/prism-element
cd prism-element
npm install
npm install -g polymer-cli

Running the demo locally

polymer serve --npm
open http://127.0.0.1:<port>/demo/

Running the tests

polymer test --npm

Keywords

FAQs

Package last updated on 14 Sep 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc